package com.lbs;

import java.io.IOException;
import java.net.MalformedURLException;

import com.itextpdf.text.BadElementException;
import com.lizbet.server.LbsCrypt;
import com.lizbet.server.myXmlParsingException;

/**
 * Representa un documento tipo CFD 
 * 
 * @author Alberto Sandoval Sotelo Martes 28/Agosto/2012
 *
 */
public class CFD extends LbsDocumento {

	public CFD() {
		tipoCfd.add("nombre", "CFD");
		tipoCfd.add("leyenda", "Este documento es una representacion impresa de un CFD.");
		pathPlantilla="plantillaCFD.xml";
		pathBgImage="bgCFD.png";
	}


	@Override
	public void sellar(LbsCrypt crypt) throws BadElementException, MalformedURLException, LbsException, IOException, myXmlParsingException{
		if (noAprob==null || anoAprob==null)
			throw new LbsException("Debe espesificar un Numero y Año de aprovacion de folios en los CFD");
		
		super.sellar(crypt);
		buildPdf();
	}

	public String getNoAprob() {
		return noAprob;
	}
	public void setNoAprob(String noAprob) {
		try{
			Integer.parseInt(noAprob);
		}catch (Exception e){
			throw new RuntimeException("El numero de aprovacion solo debe contener digitos numericos.");
		}
		this.noAprob = noAprob;
	}
	public String getAnoAprob() {
		return anoAprob;
	}
	public void setAnoAprob(String anoAprob) {
		try{
			Integer.parseInt(anoAprob);
		}catch (Exception e){
			throw new RuntimeException("El numero de aprobacion solo debe contener digitos numericos.");
		}
		if (anoAprob.length()!=4)
			throw new RuntimeException("El año de aprobacion debe ser a 4 digitos.");
			
		this.anoAprob = anoAprob;
	}

}
